#include <iostream>
#include <chrono>

int main() {
    // 创建一个包含4个线程的线程池
    threadPool pool(4);
    // 向线程池提交10个任务
    for (int i = 0; i < 10; i++) {
        // 提交一个lambda表达式作为任务
        pool.enqueue([i] {
            // 获取当前线程的ID
            std::thread::id threadId = std::this_thread::get_id();
            // 打印线程的ID和任务的内容
            std::cout << "thread " << threadId << ": Hello, world! " << i << std::endl;
            // 模拟任务执行时间
            std::this_thread::sleep_for(std::chrono::seconds(1));
        });
    }
    // 主线程等待一会儿
    std::this_thread::sleep_for(std::chrono::seconds(5));
    // 主线程结束，线程池对象被销毁，所有线程停止
    return 0;
}
